As shown in FIG. 1, a conventional graph 10 depicts tabular data from a table 12 that is linked to other tables 14 and 16 through Dynamic Data Exchange (DDE) links 18 and 20. The DDE links 18 and 20 act as pointers to the data in the tables 14 and 16 so that the tabular data in the table 12 is updated whenever data in either of the tables 14 and 16 is updated. Thus, for example, if the sales of apples in April were $5,000, rather than the $4,600 shown in FIG. 1, the data in the table 14 can be changed to $5,000, and the corresponding data in the table 12 is automatically updated by the link 18 to reflect the change.
The tables 14 and 16 may reside in separate computer files, or even in separate computers, as long as they are both available to the table 12 through the links 18 and 20. Thus, for example, the table 14 may reside on an apple and orange wholesaler's computer, while the table 16 resides on a pear, peach, and tangerine wholesaler's computer.
DDE links are advantageous because they allow data from separate sources to be combined into a single data set for use by a data client. Thus, for example, sales data in the tables 14 and 16 from different wholesalers are combined in the table 12 for use by the graph 10.
Unfortunately, DDE links can be burdensome to use when the dimensions (e.g., the number of rows and columns) of the data they link to are not static. For example, if a new column of May sales data is added to both of the tables 14 and 16, a new "May" column must be manually added to the table 12 to hold the new data, the links 18 and 20 must be manually revised to link to the new data, and the graph 10 must be manually revised to graph the new data. Similarly, if, for example, the apple and orange wholesaler begins selling watermelons in May, a new "Watermelon" row must be added to the table 12, the link 18 must be revised to link to sales data for the watermelons, and the graph 10 must be revised to include the watermelon sales data. Also, if, for example, the pear, peach, and tangerine wholesaler stops selling tangerines in May so there is no further need to graph tangerine sales data, the "Tangerine" row must be manually deleted from the table 12, or the graph 10 must be manually revised to exclude the tangerine sales data. Thus, DDE links work reasonably well to combine data from separate sources when the dimensions of those sources are static, but require burdensome manual adjustments when the dimensions change, as in the exemplary cases described above.
Similarly, transient data generated "on the fly" by a computer typically cannot be used on the fly by a data client, such as the graph 10, when the dimensions of the transient data may vary over time, because the data client and its links to the transient data must be manually adjusted to accommodate each variance in the dimensions of the transient data. Thus, for example, a web server typically cannot generate a graph on the fly for display on a web site from data generated on the fly on the web server if the dimensions of the data vary each time the data are generated.
Therefore, there is a need in the art for a device and method for arranging data for use by data clients, such as graphs, that overcome these problems. Such a device and method should allow data clients to automatically accommodate changes in the dimensions of data they use.